package springboot.study.project.service;

import org.springframework.web.bind.annotation.RequestBody;
import springboot.study.project.dto.BulletinDto;
import springboot.study.project.model.Bulletin;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @InterfaceName: BulletinService
 * @Description: 公告接口
 * @Author: liu-hao
 * @Date: 2021-03-31 23:10
 * @Version: 1.0
 **/
public interface BulletinService {
    /**
     * 添加公告
     *
     * @param bulletin 公告实体
     * @return 是否添加成功
     */
    boolean pushBulletin(Bulletin bulletin, HttpServletRequest request);

    /**
     * 删除指定公告
     *
     * @param bulletinId 公告ID
     * @return 是否删除成功
     */
    boolean removeBulletin(String bulletinId);

    /**
     * 修改公告
     *
     * @param bulletin 公告实体
     * @return 是否修改成功
     */
    boolean modifyBulletin(Bulletin bulletin);

    /**
     * 获取指定公告
     *
     * @param bulletinId 公告ID
     * @return
     */
    Bulletin getBulletinById(String bulletinId);

    /**
     * 获取最新的公告
     *
     * @return
     */
    List<Bulletin> getHotBulletins();

    /**
     * 获取指定条件的公告
     *
     * @param bulletinTitle 公告标题
     * @param publisher     发布者
     * @param offset        起始索引
     * @param pageSize      每页大小
     * @return
     */
    Map<String, Object> getBulletins(String bulletinTitle, String publisherName, String dateRange, int offset, int pageSize);
}
